import axios from 'axios'
import { ElMessage } from 'element-plus'

// 封装axios请求的基本配置
let request = axios.create({
  // 基础URL，所有请求都将以该URL开头
  baseURL: 'https://m1.apifoxmock.com/m1/2168624-537750-default',
  // 超时时间，单位为毫秒
  timeout: 5000,
})

// 配置响应拦截器
request.interceptors.response.use(
  (response) => {
    // 响应有通用的格式，该格式中分为data、code、message等字段
    // 如果code为200，表示成功，否则为失败
    let res = response.data
    if (res.code === 200) {
      ElMessage.success(res.message || '请求成功')
      return res
    } else {
      // 其他code值，都表示失败，弹出错误提示
      ElMessage.error(res.message || '请求失败')
    }
  },
  (error) => {
    // 对响应错误做点什么
    return Promise.reject(error)
  },
)

// 导出封装好的axios实例对象，在其他模块中可以直接导入使用
export default request
